重构的技术手段
最能保证重构不出错的手段 – 单元测试
什么是单元测试
- 测试粒度小
- 测试对象:类或者函数
为什么要写单元测试
- 帮助发现代码中的bug
- 帮助发现代码设计中的问题
代码的可测试性是衡量代码质量的一个标准,如果单元测试写起来很吃力,说明代码设计有些问题。
- 单元测试是对集成测试的有力补充。
- 写单元测试的过程就是代码重构的过程
- 阅读单元测试可以快速熟悉代码
- 单元测试是TDD落地执行的改进方案。
如何编写单元测试
- 利用测试框架,如JUnit,TestNG,Spring Test等
- 设计覆盖各种输入、异常、边界条件的测试用例
- 编写单元测试尽管繁琐,但并不是太耗时;
- 我们可以稍微放低对单元测试代码质量的要求;
- 覆盖率作为衡量单元测试质量的唯一标准是不合理的;
- 单元测试不要依赖被测代码的具体实现逻辑;
- 单元测试框架无法测试,多半是因为代码的可测试性不好。
单元测试为何难以落地
- 单元测试繁琐,技术挑战小,不愿意执行。
- 研发氛围“快、糙、猛”,难以执行。